﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;

namespace ProyectoCine.AreaPrivada
{
    public partial class InfromesReservas : System.Web.UI.Page,IGrilla
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ViewState["Orden"] = ""; 
                cargarComboCine();
                cargarComboUsuario();
                DateTime fecha=new DateTime(2000,01,01);
                txtFechaDesde_CalendarExtender.SelectedDate = fecha;
                txtFechaHasta_CalendarExtender.SelectedDate = DateTime.Today;
 
            }
        }
        protected void cargarComboCine()
        {
            ddlCine.DataSource = PeliculaDAO.cargarComboCine();
            ddlCine.DataTextField = "nombre";
            ddlCine.DataValueField = "id_Cine";
            ddlCine.DataBind();
            ddlCine.Items.Insert(0, new ListItem("Todos los Cines"));
        }
        protected void cargarComboUsuario()
        {
            ddlUsuarios.DataSource = InformeDAO.cargarComboUsuario();
            ddlUsuarios.DataTextField = "userName";
            ddlUsuarios.DataValueField = "userName";
            ddlUsuarios.DataBind();
            ddlUsuarios.Items.Insert(0, new ListItem("Todos los Usuarios"));
        }

        protected void btnGenerar_Click(object sender, EventArgs e)
        {
            cargarGrilla();
        }

        public void cargarGrilla()
        {
            string usuario = "";
            if (ddlUsuarios.SelectedIndex != 0)
                usuario = ddlUsuarios.SelectedValue;
            int? cine=null;
            if(ddlCine.SelectedIndex!=0)
                cine=int.Parse(ddlCine.SelectedValue);

            gvInforme.DataKeyNames = new string[] { "id_Reserva" };
            gvInforme.DataSource = InformeDAO.cargarGrillaByFiltroReserva(usuario, cine, txtFechaDesde.Text, txtFechaHasta.Text, ViewState["Orden"].ToString());
            gvInforme.DataBind();
        }

        protected void gvInforme_Sorting(object sender, GridViewSortEventArgs e)
        {
            ViewState["Orden"] = e.SortExpression;
            cargarGrilla();
        }

        protected void gvInforme_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvInforme.PageIndex = e.NewPageIndex;
            cargarGrilla();
        }
    }
}